/*

This file is part of Rooms3D.

Copyright (C) 2008 Pixecur Technologies Incorporated (Esotera).
Visit Esotera at http://www.esoteras3.com
 
Rooms3D is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
 
Rooms3D is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with Rooms3D; see the file COPYING.  If not, write to 
Pixecur Technologies, 213-31 Peet Street, St. John's, NL, A1B 3W8. 
 
Linking this library statically or dynamically with other modules is
making a combined work based on this library.  Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
 
*/

package com.datasentinel.rooms.file.sh3d;

import com.datasentinel.rooms.layout.Arrangeable;
import com.datasentinel.rooms.util.sh3d.FurnitureUtils;
import com.eteks.sweethome3d.model.Home;
import com.eteks.sweethome3d.model.Wall;

/**
 * @author rickp
 * 
 */
public class HomeFilePieceOfFurnitureArrangeableSupport implements Arrangeable
{
	private HomeFilePieceOfFurniture homeFilePieceOfFurniture;
	private Home home;
	private Wall wall;
	private FurnitureUtils furnitureUtils;

	public HomeFilePieceOfFurnitureArrangeableSupport(Home home,Wall wall,
			HomeFilePieceOfFurniture homeFilePieceOfFurniture)
	{
		super();
		this.home = home;
		this.wall = wall;
		this.homeFilePieceOfFurniture = homeFilePieceOfFurniture;
		furnitureUtils = new FurnitureUtils(home);
	}

	@Override
	public float getDepth()
	{
		return homeFilePieceOfFurniture.getDepth();
	}

	@Override
	public float getHeight()
	{
		return homeFilePieceOfFurniture.getHeight();
	}

	@Override
	public float getWidth()
	{
		return homeFilePieceOfFurniture.getWidth();
	}

	@Override
	public void setAngle(float angle)
	{
		home.setPieceOfFurnitureAngle(homeFilePieceOfFurniture, angle);
	}
	@Override
	public void setPosition(float x, float y, float z)
	{
		furnitureUtils.placeFurnitureOnWall(homeFilePieceOfFurniture, wall, x, z);
	}
}
